import {
	Toast
  } from 'vant'
//核心调用微信客户端支付
const onBridgeReady = (data, succallback,cancelcallback,failcallback) => {
	console.log('onBridgeReadydata----',data);
	WeixinJSBridge.invoke(
		'getBrandWCPayRequest', {
			"appId": data.appId, //公众号名称，由商户传入
			//"appId": data.appId, //公众号名称，由商户传入
			"timeStamp": data.timeStamp + '', //时间戳，自1970年以来的秒数
			"nonceStr": data.nonceStr, //随机串
			"package": data.package,
			"signType": "MD5", //微信签名方式：
			"paySign": data.paySign //微信签名
		},
		function(res) {
			console.log('onBridgeReadyres---',res);
			//if(res.err_msg == "get_brand_wcpay_request：ok" ) {}     
			// 使用以上方式判断前端返回,微信团队郑重提示：res.err_msg将在用户支付成功后返回    ok，但并不保证它绝对可靠。
			if (res.err_msg == "get_brand_wcpay_request:ok") {
				if (typeof succallback == 'function') {
					succallback();
				}
			} else {
				if ('get_brand_wcpay_request:fail' == res.err_msg) {
					// util.toast('支付不成功 - ' + res.err_msg + ' - ' + JSON.stringify(res));
					if(cancelcallback && typeof cancelcallback == 'function') {
						cancelcallback();
					}else {
						Toast({
							message: '支付不成功 - ' + res.err_msg + ' - ' + JSON.stringify(res),
						});
					}
				}
				if('get_brand_wcpay_request:cancel' ==  res.err_msg) {
					if(cancelcallback && typeof cancelcallback == 'function') {
						cancelcallback();
					}else {
						Toast({
							message: '支付取消',
						});
					}
				}
				if (failcallback && typeof failcallback == 'function') {
					failcallback();
				} else {
					// Toast({
                    //     message: '支付失败',
                    //     position: 'top',
                    // });
				}
			}
		}
	);
};
//商户调用入口
//succallback 支付成功后的回调函数
const wxjspay = (data, succallback, failcallback) => {
	if (typeof WeixinJSBridge == "undefined") {
		if (document.addEventListener) {
			document.addEventListener('WeixinJSBridgeReady', function() {
				onBridgeReady(data, succallback, failcallback);
			}, false);
		} else if (document.attachEvent) {
			document.attachEvent('WeixinJSBridgeReady', function() {
				onBridgeReady(data, succallback, failcallback);
			});
			document.attachEvent('onWeixinJSBridgeReady', function() {
				onBridgeReady(data, succallback, failcallback);
			});
		}
	} else {
		onBridgeReady(data, succallback, failcallback);
	}
};

export default {
	wxjspay
}
